package com.practice.ajCollections010.list.linkedlist;

import java.util.LinkedList;
import java.util.List;

/**
 * 向集合中添加元素:
 *                  1. LinkedList 允许存储任何元素，其中包括 null；
 *                  2. 存储元素可以重复，其中包括 null；
 */
public class AddElement {
    public static void main(String[] args) {
        List<String> linkedList = new LinkedList<>();
        // 将指定的元素追加到此列表的末尾。
        linkedList.add("Hello");
        // 将指定元素插入此列表中的指定位置，将当前和右侧元素向右移动
        linkedList.add(0, "world");
        linkedList.stream().forEach(item -> {
            System.out.println(item);
        });

        System.out.println("=======================");
        List<String> linkedList2 = new LinkedList<>();
        linkedList2.add("Mr");
        // 按照指定集合的迭代器的返回顺序，将指定集合中的所有元素追加到此列表的末尾
        linkedList2.addAll(linkedList);
        linkedList2.stream().forEach(item -> {
            System.out.println(item);
        });

        System.out.println("=======================");
        LinkedList<String> linkedList3 = new LinkedList<>();
        linkedList3.add("yang");
        // 从指定位置开始，将指定集合中的所有元素插入此集合，将当前位置和后侧的元素向右移动
        linkedList3.addAll(0, linkedList2);
        linkedList3.stream().forEach(item -> {
            System.out.println(item);
        });

        System.out.println("=======================");
        // 将指定元素插入到此列表的末尾
        linkedList3.addLast("Z");
        // 将指定元素插入到此列表的开头
        linkedList3.addFirst("A");
        linkedList3.stream().forEach(item -> {
            System.out.println(item);
        });

        linkedList.add("hello");
        linkedList.add("hello");
        linkedList.add(null);
        linkedList.add(null);
    }
}
